/***
输入一个非负整数数组，把数组里所有数字拼接起来排成一个数，打印能拼接出的所有数字中最小的一个。
示例 1:
输入: [10,2]
输出: "102"
示例 2:
输入: [3,30,34,5,9]
输出: "3033459"
提示:
    0 < nums.length <= 100
说明:
    输出结果可能非常大，所以你需要返回一个字符串而不是整数
    拼接起来的数字可能会有前导 0，最后结果不需要去掉前导 0
**/

/*
 * @Author:gxx
 * @Date: 2021-03-29 18:59:45
 * @Last Modified by: gxx
 * @Last Modified time: 2021-03-29 18:59:45
 * @Description: 把数组排列成最小的数
*/
#include <iostream>
#include <vector>
#include <string>
using namespace std;

int find_frist(int num)
{
    if (num / 10 > 1)
    {
        num = num / 10;
        find_frist(num);
    }
    else if (num / 10 == 1)
        return 1;
    else
        return num % 10;
}

int main(int argc, char **argv)
{

    int in;
    int f;
    vector<int> v;
    while (cin >> in)
        v.push_back(in);

    f = find_frist(v[0]);
    cout << "f  : " << f << endl;
    for (int i = 1; i < v.size(); i++)
    {
        f = std::min(f, find_frist(v[i]));
    }

    return 0;
}
aa